package cliente.rn;

import java.rmi.RemoteException;

import comum.so.exception.FalhaComunicacaoBancoDadosException;
import comum.so.exception.FalhaValidacaoException;
import comum.so.exception.JaExistePerfilCadastradoComEsseLoginException;
import comum.so.exception.LoginEmUsoException;

import cliente.so.SOClienteSaida;

public class RNAutenticador {

	private SOClienteSaida clienteSaida;

	public RNAutenticador(SOClienteSaida clienteSaida) {
		this.setClienteSaida(clienteSaida);
	}

	public void fazerLogin(String identificador, String senha)
			throws RemoteException, FalhaComunicacaoBancoDadosException,
			FalhaValidacaoException, LoginEmUsoException {
		String senhaCriptografada = RNEncriptador.encriptar(senha);
		getClienteSaida().fazerLogin(identificador, senhaCriptografada);
	}

	public void cadastrarNovoPerfil(String nome, String senha)
			throws RemoteException, FalhaComunicacaoBancoDadosException,
			JaExistePerfilCadastradoComEsseLoginException {
		String senhaCriptografada = RNEncriptador.encriptar(senha);
		getClienteSaida().cadastrarNovoPerfil(nome,  senhaCriptografada);
	}

	protected SOClienteSaida getClienteSaida() {
		return clienteSaida;
	}

	protected void setClienteSaida(SOClienteSaida clienteSaida) {
		this.clienteSaida = clienteSaida;
	}
}
